I. Technical Field
The present invention relates generally to data processing and, more particularly, to common handling of instances of providers called from a plurality of frameworks.
II. Background Information
In an enterprise services architecture (ESA), a client may call providers at a plurality of frameworks to perform transactions on business objects. A framework is a system of software on one or more interconnected computers or processors that implements transactions. For example, the providers may include service providers, service managers, and proxies. The transactions may be called or performed via the Internet or an intranet. Typically, the providers use a standardized messaging, such as XML (Extensible Markup Language) and SOAP. Moreover, there is usually some type of web mechanism, such as UDDI (or Universal Description, Discovery, and Integration) to locate the service (and its public Application Program Interface (API)).
A client can call the individual providers from a framework through an API. An example of such a framework is an “enterprise services framework” (ESF). In response to the call, the framework instantiates the provider to operate on one or more business objects in a database. As used herein, the term “instantiate” means, in an object oriented programming (OOP) environment, to initialize an instance of an object of a particular class, and, more generally, includes deploying, customizing, running and/or executing an application. As used herein, an “object” means a software bundle of methods and related variables (e.g., data). For example, in object-oriented programming, an object is a concrete realization (i.e., “instance”) of a class that consists of operations and the data associated with those operations. The term “business object” refers to a software bundle of variables and related methods that can be used for describing a business process or task. The business object may be implemented and stored as a data structure. The API, when called, instantiates providers, such as a catalog service provider for listing products from a catalog or a purchasing service provider for allowing the purchase of a product.
However, when a client calls multiple providers to operate on related business objects, interference between the providers at runtime can result in relation to those business objects. For example, the interference may result in inconsistencies in the data contained in the business objects, which may cause further data corruption, misreading of the present states of the business objects, or other errors. Furthermore, the inconsistencies resulting from interference between the multiple providers may be difficult to manage. For example, it may not be possible to undo the inconsistencies in the database. This may cause stalling of the providers or propagation of inconsistencies through the database.
Thus, it is desirable to prevent inconsistencies resulting from the transactions. It is further desirable to manage inconsistencies that result from the transactions.